package com.tosit.bmx.service.user;

import com.tosit.bmx.domian.User;

import java.util.List;

/**
 * 学员服务接口
 *
 * @author tsl
 * @create 2018-04-20 15:05
 */
public interface UserService {
    /**
     * @param
     * @return
     * @author tsl
     * @date 2018/4/20 16:57
     */
    User findsUserByName(String name);

    Integer adduser(User user);

    Integer modifyUser(User user);

    List<User> gainUserByArea(Integer id, Integer type);

    /**
     * 获取未地区的所有人
     *
     * @param type 民族  1汉人 2藏
     * @return
     * @author tsl
     * @date 2018/4/23 15:13
     */
    List<User> gainNAreaUser(Integer type);


    Integer removeUser(List<Integer> ids);

    /**
     * 根据区域和用户电话，用户名搜索某一用户
     *
     * @param searchCode 搜所关键词
     * @param type       民族  1汉人 2藏
     * @param areaId
     * @author tsl
     * @date 2018/4/23 13:24
     */
    List<User> seekUser(Integer areaId, String searchCode, Integer type);

    /**
     * 根据区域和用户状态搜索用户（1正常使用  2到期用户 3停用用户 注：全部用户可使用在上/userByArea接口）
     *
     * @param areaId 区域id
     * @param status 查询类型  1正常使用  2到期用户 3停用用户
     * @param type   民族  1汉人 2藏
     * @author tsl
     * @date 2018/4/23 15:24
     */
    List<User> seekUser(Integer areaId, Integer type, Integer status);

    /**
     * 获取最后一条
     *
     * @param
     * @return
     * @author tsl
     * @date 2018/4/23 16:46
     */
    User getLastUser();

    /**
     * 关联到所有题型，科目，车型上（题型没被禁用的）
     *
     * @param
     * @return
     * @author tsl
     * @date 2018/4/23 16:46
     */
    Integer relateLevel(Integer id);

    /**
     * 重置某个用户密码
     *
     * @param userId 用户id
     * @return
     * @author tsl
     * @date 2018/4/24 15:34
     */
    Integer resetPassWord(Integer userId);

    /**
     * 获取在线用户
     *
     * @return
     * @author tsl
     * @date 2018/4/24 15:34
     */
    List<User> gainOnlineUser();

    /**
     * 获取用户数量
     * @param
     * @return
     * @author tsl
     * @date 2018/4/24 16:20
     */
    Integer getUserCount();
    /**
     * 获取题目数量
     * @param
     * @return
     * @author tsl
     * @date 2018/4/24 16:20
     */
    Integer getSubjectCount();
    /**
     * 根据用户状态搜索未分组用户（1正常使用  2到期用户 3停用用户 注：全部用户可使用在上/userByArea接口）
     *
     * @param status 查询类型  1正常使用  2到期用户 3停用用户
     * @param type   民族  1汉人 2藏
     * @author tsl
     * @date 2018/4/23 13:24
     */
    List<User> seekUser(Integer type, Integer status);
    /**
     * 根据区域和用户电话，用户名搜索某一用户
     *
     * @param searchCode 搜所关键词
     * @param type       民族  1汉人 2藏
     * @author tsl
     * @date 2018/4/23 13:24
     */
    List<User> seekUser(String searchCode, Integer type);

}
